#include <REGX52.H>

void delay_ms(unsigned int ms)
{
    unsigned int i, j;
    for (i = 0; i < ms; i++)
    {
        for (j = 0; j < 123; j++)
            ;
    }
}

void main()
{
    // 注意取反操作
    unsigned char i;
    unsigned char temp = 0x01;
    P2 = 0xFF; // 初始化P2口，全置高（所有LED灭）
    while (1)
    {
        for (i = 0; i < 8; i++)
        {
            P2 = ~temp;
            delay_ms(200);
            temp <<= 1;
        }

        temp = 0x80;
        for (i = 0; i < 8; i++)
        {
            P2 = ~temp;
            delay_ms(200);
            temp >>= 1;
        }
        temp = 0x01;
    }
}